CSE 401
Capstone Design Project (종합설계프로젝트)
Fall 2012
Division of Information and Computer
Engineering
Ajou University
Last Update:
August 24th 2012
Pre-requisite
(Catalog Description):
Consent of the Department & Instructor
CSE 300 (Software Analysis and Design)
Topics
include (Catalog Description):
Introduction to the techniques involved in the planning and implementation
of large software systems. Emphasis on human interface
aspects of systems. Planning software projects; software design process;
top-down design; modular and structured design; management of software
projects; testing of software; software documentation; choosing a language for
software system.
Course Objectives/Overview
- This course targets to achieve the comprehensive
evaluation of the integrated knowledge that were educated in the low-level
software engineering courses such as software design, architecture,
development, verification and validation.
- This course prepares students to play a key role in software industry by
learning and practicing the entire software development process that includes:
problem understanding and definition, requirements engineering, software design
and analysis, development and testing.
- This course prepares students to work with team by working on a collaborative
team-based project. Also, students learn about the ethics towards a
professional engineer. ACM's own "Software Engineering Code of Ethics and
Professional Practice" (version 5.2 http://www.acm.org/about/se-code)
in Software
Engineering is Engineering.
- This course encourages students to actively engage in to a creative problem
solving sessions during the entire software engineering process.
- This course challenges students to produce high-quality product to be able to
participate in their graduation project or national or international level
software competition (i.e. Microsoft Imagine cup).
What you can expect to achieve from this course - You are capable to:
- understand and explain the fundamental concepts of math,
science, information and computer engineering knowledge that were applied to
your team project.
- work with the (potential) clients by perceiving and
understanding their needs and requirements (functional or non-functional) for
the software system in their business production.
- clearly define the constraints given in the complex real-world business
environment (in relation to your development environment) and make appropriate
decisions in designing components and units that meet the requirements from the
clients.
- clearly express the behavior of the software system
by understanding the behind design principles.
- assure that there's no critical errors through the
proper verification and validation techniques in testing.
- actively collaborate with the team members by
faithfully performing your roles.
- document the necessary documents that are required for the project by using
various techniques (writing skills, figures, tables, and other specific design
and modeling components etc.)
- present your project that includes problems, motivation, solution approaches,
arguments, justifications, evidences etc.
- answer questions from the audiences in a scientific and professional way.
- understand and analyze thoroughly the impact of your project to the community
and the environment where your project can be potentially deployed and used.
- clearly identify and explain your contributions to
the team-project and others work if any were referred and being adopted (with
proper acknowledgements)
- collect, organize, and summarize the business domain information and
knowledge that are related to your project.
Instructor:
Prof. Seok-Won Lee, Ph.D.
Associate Professor/ Dept. of Software Convergence
Technology
Tel: 031-219-3548 (office)
Email: leesw @ ajou. ac. kr (add 'CSE401' in the subject)
Office: Pal-Dal-Kwan, Room 603
Office Hours: Mondays/Wednesdays 10:30 – 11:30 AM, 1 – 3 PM or by Appointment
How
the lab hours will be used? vs. Classroom lectures
Mostly lab hours will be used to learn hands-on
practical concepts and practice with tools with TAs and the instructor. Team
members are expected to meet and work during the lab hours on various things
such as (but not limited to): meeting log, software version control and
debugging tools, IDE study, brain-storming sessions, designing and architecting
the project ideas, development of the project, presentations, documentation and
demonstration etc.
The classroom lectures will be more focused on the
principles behind the software engineering lifecycle with serious discussions
on "how to apply those principles to solve the real-world problems?"
Students will learn: 1) the "state-of-the-art" techniques that are
currently being used by the professionals in the world; 2) how to consider and
incorporate the constraints that exist in real-world into the project; 3) how
to prepare and write professional documents of Statement of Work, Requirements,
Design and Analysis, Testing etc.and other technical
documents (in English and Korean); 4) how to understand the "risks"
in the project and find ways to "mitigate" those unexpected risks
during the project; 5) ethics and responsibilities as future professionals; and
6) how to monitor the project progress towards the successful final project
delivery. A couple of professionals (from outside) will be invited to
give invited talks to share their experiences and ideas.
Class TA:
Mr(s).
Tel:
Email:
Office: Pal-Dal-Kwan 913-1
Office Hours: 9AM - 6PM
International TAs: Sania Yaqoob (sania.yaqoob86@gmail.com), Muhammad Attique (attiq85@gmail.com), Rajib Paul (ece.rajib@gmail.com) (International TAs will assist students in technical/ scientific writing & presentation, preparation of display, posters and demonstration)
Meeting
Time & Location:
Capstone Project Building (종합설계동) Room 108
Class Lab: Wednesdays 6 - 8 PM
Note: eClass or emails will be used for students to access course materials.
Specific Course Objectives, Topics1 and Schedule2: (Ajou University Academic Calendar)
1. Software Process
- Software process models, process iteration, process activities
2. Software Requirements
- Functional, Non-functional requirements, User requirements, System requirements,
Interface specification, and requirements document
3. Software Analysis (see Software V&V)
- Software
Analysis: A Roadmap, Daniel Jackson and Martin Rinard,
A chapter in "The Future of Software Engineering", Editor Anthony
Finkelstein, ACM Press, June 2000
4. Software Design (including OO design patterns)
- UML
- Objects, object classes, OO design process, design evolution
- Aspect-oriented software development (AOSD)
5. Critical Systems
- rapid software development, softare reuse,
component-based SE, critical systems development, software evolution
6. Software Quality
- Software quality, testing, Quality control, Configuration Management,
Continuous process improvement, Roles of statistical methods
7. Software verification, validation & testing
- Verifying software requirements (inspection and walkthrough, checklists,
requirements traceability matrix, building acceptance test plan)
- Verifying logical designs (linkage between data model and process models,
technical reviews)
- Unit testing, Integration testing, system testing, acceptance testing
- Testing techniques and strategies
8. Projects
- Project management
- Management activities, project planning, scheduling, & risk management
*** Check the course topics, dues and notes in the table
below AND course materials available in the eClass
BEFORE come to the class.
|
Date |
Course Topics (Tentative1) |
Due |
Misc. Note |
1 |
Week 1 8/27 8/29 |
Course
Overview |
|
|
2 |
Week 2 9/3 9/5 |
Course
Overview
|
|
|
3 |
Week 3
|
Project Overview
|
|
Team
Building Week |
4 |
Week 4
|
Student Presentation
Software
Design: UML
Diagram, Use Case Diagram, Activity Diagram |
Project
Proposal Due
|
|
5 |
Week 5
|
Software
Process & Object-oriented Design |
|
|
6 |
Week 6
|
10/1 - No class
10/3 - Student Presentation (Core technology & demo) Object-oriented Design |
|
Demo
|
7 |
Week 7 10/8 10/10 |
Architectural
Design, Socio-technical Systems
|
|
|
8 |
Week 8
|
Midterm
period |
|
|
9 |
Week 9
|
Midterm Review |
Requirements
Doc due
|
|
10 |
Week 10 10/29 10/31 |
Presentation "How to prepare technical demonstration, poster, display"
|
|
|
11 |
Week 11
|
Software Verification, Validation & Testing
Secure
Software Assurance: Software C&A
|
Design/Analysis
Doc
Due
|
|
12 |
Week 12
|
Ontology
based object-oriented domain modeling: fundamental concepts |
|
|
13 |
Week 13
|
Software
Quality Assurance Quality Management, Process Improvement & Configuration
Management |
|
|
14 |
Week 14 11/26 11/28 |
|
|
|
15 |
Week 15 12/3 12/5 |
Project
Group Demonstrations & Presentations |
Final Project Report due
Even number teams |
Individual
Group Demo |
16 |
Week 16 12/12 |
Project
Group Demonstrations & Presentations |
|
Individual Group Demo
|
1Additional topics will be introduced as time allows. 2Schedules may be changed.
Microsoft
Imagine Cup Competition
We may plan to participate in the Microsoft
Imagine Cup Competition? Read more about this here.
Important
Dates:
Midterm: 10/15 - 10/17
Final exam:
12/10 - 12/12 (Comprehensive exam, but more focused on the second part)
Due dates for the Homework/Project will be announced in
the class.
Text
Book/ Recommend Readings:
-- Code Element (2nd Edition),
by Steve McConnell, Microsoft Press, 2004
-- The Elements of Style, W. Strunk
Jr. and EB White, Allyn and Bacon, 2000
-- Why Programs Fail, Andreas Zeller, Morgan
Kaufmann, 2006
-- Essentials of Software Engineering, Frank Tsui and Orlando Karam, Jones and
Barlett, 2007
-- Sommerville, I. "Software
Engineering", 8th edition, Addison Wesley, 2007. (related web site: You can retrieve the slides from here.)
-- Gerald Kotonya, Ian Sommerville, Requirements Engineering: Processes and Techniques, ISBN:
0-471-97208-8, August 1998, John Wiley & Sons. (it
can be fully accessed online through the UNCC E-Learning site (http://www.labs.uncc.edu/basics/etraining.htm).
Log in and go to the Books24x7 section to access it.
-- Martin Fowler UML Distilled: A brief guide to the standard object
modeling language, Third Edition, Addison-Wesley. 2003. ISBN:
0-321-19368-7
-- AspectJ in Action:
Practical Aspect-Oriented Programming, Ramnivas Laddad, July 2003, Softbound, 512 pages, ISBN 1930110936, Manning
Publications Co. (This book has two options: Softcopy & E-Book). Ebook can be found at: http://www.manning.com/laddad.
Online
Resources (The list will grow - Welcome to Contribute if you have any to share
with others! ):
Requirements Engineering
Requirements
Engineering Journal, Springer-Verlag
Requirements
Engineering books reviews by I. Alexander
Requirements Engineering
Specialist Group in UK
IFIP
Working Group 2.9 on Requirements Engineering
INCOSE
Requirements Engineering Group
Requirements
Engineering resources from the IEEE Task Force on RE
RE On-line mailing
list Software Testing and Quality
Assurance Online Forums
UML (Unified Modeling Language)
UML
Tutorial
UML
On-line Course
UML Help
Software Patterns
Patterns Home
The
Design Patterns - by James Cooper
Software Quality Assurance and
Testing
Software Testing Resources and
Tools
Software QA and
Testing Resource Center
Free
Software Quality Assurance and Testing Training and Tutorials
Aspect-oriented Software
Development (AOSD) /Programming (AOP)
Early Aspects: Aspected-oriented Requirements Engineering &
Architectural Design (AOSD '02, OOPSLA '04)
Aspect-oriented Software Development & Community
- The aosd.net site is intended to be a comprehensive source of information of
information for Aspect-Oriented Software Development, and supports mailing
lists related to AOSD.
Xerox-Parc research on AOP - The AspectJ project at Eclipse.org - AspectJ is a seamless aspect-oriented extension to Java
that enables the modular implementation of a wide range of crosscutting
concerns, Software Design
Area at Xerox-Parc - The goal of the Software Design Area at Xerox PARC is
simple and long-standing: to make it possible to cleanly capture complex design
structures in software implementations.
Grading
Policies: (Composition of the grading percentage may be changed)
Grading will be based on a curve
Breakdown (tentative)
Midterm: 25%
Final: 30%
Individual Homework & Quizzes: 10%
Group Project: 35% (Proposal
& Plan / Requirements Specification / Design Specification / Final Report /
Project Presentation / Project Demonstration)
Individual assignments, quizzes, and exams must demonstrate an understanding of the material in order to receive higher than a C in this course. If no individual assignments or quizzes are assigned, then that portion of a student’s grade will be distributed across the midterm, final and project in a manner to be determined.
Special Notes:
Academic Integrity:
Students have the responsibility to know and observe the requirements of Ajou University Code of Student Academic Integrity. This code forbids cheating, fabrication, or falsification of information, multiple submission of academic work, plagiarism, abuse of academic materials, and complicity in academic dishonesty. There are no special requirements regarding academic integrity in this course. The code will be strictly enforced and is binding on the students. Grade and academic evaluations in this course include a judgment that the student's work is free from academic dishonesty of any type; and grades in this course therefore should be and will be adversely affected by academic dishonesty. Students who violate the code can be expelled from Ajou University. The normal penalty for a first offense is zero credit on the work involving dishonesty and further substantial reduction of the course grade. In almost all cases the course grade is reduced to an F. Copies of the Code can be obtained from the Dean of Students Office or me. Standards of academic integrity will be enforced in this course. Students are expected to report cases of academic dishonesty to me immediately.